Character set, collate

Otázka od: BRCKO Peter

1. 6. 2004 11:29

Asi upresnim postup ktorym dochadzam k nekorektnemu triedeniu.
Mozno je problem niekde inde.

1. Pouzivam ISQL
2. Po jeho starte nastavim character set na WIN1250 ( alebo iny pozadovany )
3. Nastavim SQL DIALECT na klientovi na 3.
4. NotePadom mam vytvoreny SCR ktorym vytvaram DB s chracter set WIN1250.
5. NotePadom mam vytvoreny SCR ktorym vytvorim tabulku s varchar bez
definovania
    character set ( predpokladam, ze ziska defaultne ten z DB ). Danym SCR,
ktorym tabulku
    vytvorim, do nej naplnim slovensku abecedu. Insert tam vsak dava ine znaky
ako vytvorene vo WIN.
    Je mozne v ISQL definovat character set pre obsah importovaneho suboru?
    Alebo ten subor s obsahom abecedy ma byt vytvoreny inak?
    Selectom ( kolone definulem collate PXW_CSY ) ziskam obsah tabulky, ten ma
vsak nezmyselne
    znaky - dostali sa tam insertom - to je v principe O.K.
6. Skusil som ten SCR preniest cez ClipBoard a znaky boli v poriadku, len
triedenie bolo nezmyselne.

Tusim, ze je to v pouziti WIN a DOS ISQL zaroven, no neviem ako z toho logicky
von.
Poradi niekto?

Peter Brcko.

W2K, FB 1.0.3.972 ( odskusane aj na FB1.5 )

Odpovedá: horky@cominn.cz

1. 6. 2004 12:00

> From: BRCKO Peter [mailto:peter.brcko@assetsoft.sk]
> Sent: Tuesday, June 01, 2004 11:51 AM

> 1. Pouzivam ISQL
> 2. Po jeho starte nastavim character set na WIN1250 ( alebo
> iny pozadovany )
> 3. Nastavim SQL DIALECT na klientovi na 3.

OK, ale teprve ted se musis prikazem CONNECT pripojit k databazi.

> 4. NotePadom mam vytvoreny SCR ktorym vytvaram DB s chracter
> set WIN1250.
> 5. NotePadom mam vytvoreny SCR ktorym vytvorim tabulku s
> varchar bez definovania character set ( predpokladam, ze ziska defaultne ten
z DB ).

Tady je chyba. Character set a Collate jsou ruzne veci. Character set se urci
podle databaze, ale Collate mas stale neurceno. Nejlepe je definovat si domeny,
ve kterych budes mit urcen Collate.
Napr:
CREATE DOMAIN VARCHAR30_NN AS VARCHAR(30) NOT NULL COLLATE PXW_CSY

> 6. Skusil som ten SCR preniest cez ClipBoard a znaky boli v
> poriadku, len triedenie bolo nezmyselne.

Jeste zkus urcit Collate primo na sloupci v selectu (jen na vyzkouseni, v praxi
je to nepouzitelne):
SELECT SLOUPEC COLLATE PXW_CSY FROM TABULKA

Doporucuji knihu P. Cisare: Podrobna prirucka Interbase/Firebird.
Tam se doctes vse, na co ses ted ptal a mnohem vice  
--
S pozdravem Karel Horky, D7, FB 1.0.3, IBX 7.08, WXP SP1
[mailto:horky@cominn.cz]